package thread;

/**
 * 线程方法-用户线程和守护线程
 */
public class ThreadMethod02 {

    public static void main(String[] args) throws InterruptedException {

        /*
            1)用户线程：也叫工作线程，当线程的任务执行完或通知方式结束
            2)守护线程：一般是为工作线程服务的，当所有的用户线程结束，守护线程自动结束
            3)常见的守护线程：垃圾回收机制

            举例将一个线程设置成守护线程
         */
        MyDemoThread myDemoThread = new MyDemoThread();
        //如果希望当main线程结束后，子线程可以自动结束
        //只需将子线程设置成守护线程即可
        myDemoThread.setDaemon(true);
        myDemoThread.start();

        for (int i = 0; i < 10; i++) {  //主线程 main
            System.out.println("宝强在辛苦地工作...");
            Thread.sleep(1000);
        }
    }
}

class MyDemoThread extends Thread {

    public void run() {

        for(; ; ) {
            try {
                Thread.sleep(50);//休眠50ms
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println("马蓉和宋喆快乐聊天...");
        }
    }
}

